<template>
	<view class="content">
		<view>
			<view>
				<view class="header"><image src="../../static/download.jpg" mode="aspectFill" style="border-radius: 50%;"></image></view>

				<view class="content11">
					<view>申请获取以下权限</view>
					<text>获得你的公开信息(昵称，头像等)</text>
				</view>

				<view class="f ">
					<button type="" class="bottom cu-btn f-1 bg-gray" style="" @click="quxiao">取消</button>
					<button class="bottom cu-btn f-1 bg-green" type="" open-type="getUserInfo" lang="zh_CN" @getuserinfo="onGotUserInfo">授权登录</button>
				</view>
				
			</view>
		</view>
	</view>
</template>

<script>
import helper from '../../common/helper.js';
export default {
	data() {
		return {
			show: false,
			sessionKey: '',
		};
	},
	methods: {
		quxiao(){
			uni.navigateBack({
				delta: 1
			});
		},
		// 一个方法，最后调取，138.登录成功
		
		// 获取用户授权
		onGotUserInfo(e) {
			if (e.detail.errMsg === 'getUserInfo:fail auth deny') return uni.$showMsg('您取消了授权！');
			this.getSessionKey(e.detail);
			// this.getToken(e.detail);
			console.log('进入1111');
		},
		// 注册
		async getSessionKey(info) {
			console.log('进入2222');
			// 获取code
			const [err, res] = await uni.login().catch(err => err);
			if (err || res.errMsg !== 'login:ok')
				return uni.showToast({
					title: '用户登录失败！',
					icon: 'none',
				});
			console.log('res :>> ', res);
			// 将用户数据保存在本地缓存
			uni.setStorageSync('info', info);

			//向后端进行注册
			let result;
			try {
				result = await this.$request.post('addons/shopro/user/getWxMiniProgramSessionKey', {
					data: {
						code: res.code,
					},
					header: {
						'XX-Wxapp-AppId': helper.appid,
					},
					dataType: 'json',
					responseType: 'text',
				});
			} catch (e) {
				//TODO handle the exception
				// return uni.showToast({
				// 	title: '网络连接失败！',
				// 	icon: 'none',
				// });
			}
			this.sessionKey = result.data.data.session_key;
			uni.setStorageSync('session_key', this.sessionKey);
			// async getToken(info) {
			let data;
			try {
				data = await this.$request.post('addons/shopro/user/wxMiniProgramLogin', {
					data: {
						session_key: this.sessionKey,
						encryptedData: info.encryptedData,
						iv: info.iv,
					},
					header: {
						'XX-Wxapp-AppId': helper.appid,
					},
					dataType: 'json',
					responseType: 'text',
				});
				
				const token1 = data.data.data.token
				console.log('data.data.data', data.data.data);
				// 调取
				
				//信息提示
				if (data.data.code === 1) {
						helper.myToken = data.data.data.token;
						uni.setStorageSync('id', data.data.data.id);
						
						uni.setStorageSync('usrInfo', data.data.data);
						uni.setStorageSync('token', token1);
						
						uni.showToast({
							title: data.msg,
							icon: 'none',
						});
						
						this.$Router.replaceAll({
							name: 'home',
						});
					}
					
					
					
					
				
			} catch (e) {
				//TODO handle the exception
				return uni.showToast({
					title: '网络连接失败！',
					icon: 'none',
				});
			}
			// },
			// 后端返回失败code
			// if (data.data.code != 1) {
				
			// 	return uni.showToast({
			// 		title: '用户登录失败！',
			// 		icon: 'none',
			// 	});
			// }
			// 用户数据保存在本地缓存

			
			

			
		},
	},
};
</script>

<style lang="scss" scoped>
.content {
	width: 100vw;
	height: 100vh;
	background-color: #ffffff;
	overflow: hidden;

	.header {
		margin: 90rpx 0 90rpx 50rpx;
		// border-bottom: 1px solid #ccc;
		text-align: center;
		width: 650rpx;
		height: 300rpx;
		line-height: 450rpx;
	}

	.header image {
		width: 200rpx;
		height: 200rpx;
	}

	.content11 {
		margin-left: 50rpx;
		margin-bottom: 40rpx;
	}

	.content11 text {
		display: block;
		color: #9d9d9d;
		margin-top: 40rpx;
	}

	.bottom {
		border-radius: 80rpx;
		margin: 70rpx 50rpx;
		font-size: 35rpx;
	}
}
</style>
